// 该文件专门用于创建整个应用的路由器
import VueRouter from 'vue-router'
//引入组件
import About from '../pages/About'
import Home from '../pages/Home'
import News from '../pages/News'
import Message from '../pages/Message'
import Detail from '../pages/Detail'

//创建并暴露一个路由器
const router= new VueRouter({
	mode:'history',
	routes:[
		{
			name:'guanyu',
			path:'/about',
			component:About,
			meta:{isAuth:true,title:'关于'}
		},
		{
			name:'zhuye',
			path:'/home',
			component:Home,
			meta:{title:'主页'},
			children:[
				{
					name:"xiwen",
					path:'news',
					component:News,
					// news和message需要权限校验，得添加属性
					meta:{isAuth:true,title:'新闻'},
					// 独享路由守卫可以和后置路由守卫结合起来使用
					/* beforeEnter:(to,from,next)=>{
						console.log('独享路由守卫',to,from);
                        if(to.meta.isAuth){//判断是否需要鉴权
                        // if(to.path==='/home/news'||to.name==='xiaoxi'){
                        	if(localStorage.getItem('school')==='atguigu'){
                        		next()
                        	}else{
                        		alert('学校名不符，无权限')
                        	}
                        }else{
                        	next()
                        }
					} */
				},
				{
					name:'xiaoxi',
					path:'message',
					component:Message,
					meta:{isAuth:true,title:'消息'},
					children:[
						{
							name:'xiangqing',
							path:'detail',
							component:Detail,
							meta:{isAuth:true,title:'详情'},
							//props的第一种写法，值为对象，该对象中的所有key-value都会以props的形式传给Detail组件。
							// props:{a:1,b:'hello'}

							//props的第二种写法，值为布尔值，若布尔值为真，就会把该路由组件收到的所有params参数，以props的形式传给Detail组件。
							// props:true

							//props的第三种写法，值为函数
							props($route){
								return {
									id:$route.query.id,
									title:$route.query.title,
									a:1,
									b:'hello'
								}
							}

						}
					]
				}
			]
		}
	]
})

/* 
// 全局前置路由守卫   在每一次路由切换之前，初始化时被调用  next--放行
router.beforeEach((to,from,next)=>{
console.log('前置路由守卫',to,from);

if(to.meta.isAuth){//判断是否需要鉴权
// if(to.path==='/home/news'||to.name==='xiaoxi'){
	if(localStorage.getItem('school')==='atguigu'){
		next()
	}else{
		alert('学校名不符，无权限')
	}
}else{
	next()
}
})

*/
// 全局后置路由守卫   在每一次路由切换之后，初始化后被调用
router.afterEach((to,from)=>{
	//函数体
	document.title=to.meta.title||'硅谷系统'
	console.log('后置路由守卫',to,from)
})


export default router
